package cn.doit.scala.day02.array

/**
 * @DATE 2021/12/25/10:24
 * @Author MDK
 * @Version 2021.2.2
 *
 * 学习Array的9种方法
 * 不可变数组  长度不可变,元素可变
 * 1)arr(index)= 值
 * 2)update(index, newVal)
 * 3)max min
 * 4)sum求和
 * 5)mkString(各个元素之间的分隔符)
 * 6)sorted 排序(默认升序)
 * 7)reverse 反转数组
 * 8)size
 * 9)foreach
 * */
object C01_Array02 {
  def main(args: Array[String]): Unit = {
    val arr = Array[Int](1,2,3,4,5,6,7)
    val arr2 = Array[Int](12,21,37,4,15,26,7)
    println(arr(5))
    println(arr.length == arr.size)

    println("-----------------------")
    arr.update(0,11)
    println(arr.toList)

    println("-----------------------")
    val max: Int = arr.max
    println(max)
    println(arr.min)
    println(arr.sum)

    println("-----------------------")
    println(arr.mkString("\t"))
    println(arr.toList.sorted)


    println(arr.toList.reverse)
    println(arr2.toList.reverse)
    println("-----------------------")

    //遍历方式一:foreach
    arr.foreach(println)
    println("-----------------------")

    //遍历方式二:for
    for (elem <- arr) {
      println(elem)
    }
    for (index <- 0 until arr.length) {
      println(arr(index))
    }
    println("-----------------------")
    //遍历方式三:迭代器
    val iterator: Iterator[Int] = arr.toIterator
    while (iterator.hasNext){
      val i: Int = iterator.next()
      println(i)
    }
  }
}
